home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / pcboard / read100.zip / ENTER.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-05-23  |  4KB  |  321 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.3O (Encryption type II) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Integer  INTEGER001
  22.     Integer  INTEGER002
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   TSTRING006(10)
  29.     Declare  Procedure PROC001(Var String STRING007, Integer INTEGER003, Boolean BOOLEAN003)
  30.  
  31. ;------------------------------------------------------------------------------
  32.  
  33.     If (TokCount() > 0) Then
  34.         STRING004 = Trim(Upper(GetToken()), " ")
  35.         If (STRING004 == "ALL") Then
  36.             BOOLEAN002 = 1
  37.         Endif
  38.     Endif
  39.     GetUser
  40.     StartDisp 1
  41.     DispFile PPEPath() + "ENTER", 4
  42.     STRING005 = PPEPath() + "DATA\" + Strip(Left(U_Name(), 4) + Right(U_Name(), 4), " ")
  43.     If (Exist(STRING005)) Goto LABEL001
  44.     AnsiPos 40, 10
  45.     PrintLn "@X0CNo address book found, type BOOK"
  46.     AnsiPos 40, 11
  47.     PrintLn "@X0Cfrom the main menu to create one"
  48.     Goto LABEL004
  49.     :LABEL001
  50.     INTEGER001 = 1
  51.     FOpen 1, STRING005, 0, 0
  52.     :LABEL002
  53.     If (Ferr(1)) Goto LABEL003
  54.     FGet 1, TSTRING006(INTEGER001)
  55.     INTEGER001 = INTEGER001 + 1
  56.     Goto LABEL002
  57.     :LABEL003
  58.     FClose 1
  59.     INTEGER002 = INTEGER001 - 2
  60.     AnsiPos 51, 7
  61.     Print "@X08[@X0F@X08/@X0F@X07 to select names@X08]"
  62.     :LABEL004
  63.     If (BOOLEAN002) Goto LABEL005
  64.     AnsiPos 50, 4
  65.     PROC001(STRING001, 24, 1)
  66.     :LABEL005
  67.     If ((STRING001 == "") || (STRING001 == "ALL")) Then
  68.         AnsiPos 50, 4
  69.         Print "@X0FALL"
  70.         AnsiPos 40, 6
  71.         Print "                    "
  72.         BOOLEAN001 = 1
  73.         STRING003 = "N"
  74.     Endif
  75.     If (Exist(STRING005)) Goto LABEL006
  76.     AnsiPos 40, 10
  77.     PrintLn "                                "
  78.     AnsiPos 40, 11
  79.     PrintLn "                                "
  80.     Goto LABEL007
  81.     :LABEL006
  82.     AnsiPos 62, 6
  83.     Print "             "
  84.     AnsiPos 51, 7
  85.     Print "                     "
  86.     :LABEL007
  87.     AnsiPos 50, 5
  88.     PROC001(STRING002, 24, 0)
  89.     If (STRING002 == "") Then
  90.         AnsiPos 1, 15
  91.         Wait
  92.         End
  93.     Endif
  94.     If (BOOLEAN001) Goto LABEL011
  95.     AnsiPos 50, 6
  96.     Gosub LABEL013
  97.     BOOLEAN001 = 0
  98.     While (BOOLEAN001 == 0) Do
  99.         STRING003 = Upper(Inkey())
  100.         If (Upper(STRING003) == "N") Then
  101.             Gosub LABEL013
  102.             BOOLEAN001 = 1
  103.         Endif
  104.         If (Upper(STRING003) == "Y") Then
  105.             Gosub LABEL012
  106.             BOOLEAN001 = 1
  107.         Endif
  108.         If (STRING003 == "LEFT") Then
  109.             If (INTEGER001 == 1) Then
  110.                 Gosub LABEL013
  111.                 Goto LABEL008
  112.             Endif
  113.             Gosub LABEL012
  114.         Endif
  115.         :LABEL008
  116.         If (STRING003 == "RIGHT") Then
  117.             If (INTEGER001 == 1) Then
  118.                 Gosub LABEL013
  119.                 Goto LABEL009
  120.             Endif
  121.             Gosub LABEL012
  122.         Endif
  123.         :LABEL009
  124.         If (STRING003 == Chr(13)) Then
  125.             If (INTEGER001 == 1) Then
  126.                 STRING003 = "Y"
  127.                 Goto LABEL010
  128.             Endif
  129.             STRING003 = "N"
  130.             :LABEL010
  131.             BOOLEAN001 = 1
  132.         Endif
  133.     EndWhile
  134.     If (STRING003 == "Y") Then
  135.         STRING003 = "R"
  136.     Else
  137.         STRING003 = "N"
  138.     Endif
  139.     :LABEL011
  140.     AnsiPos 1, 15
  141.     KbdStuff "E^M" + STRING001 + "^M" + STRING002 + "^M" + STRING003 + "^M"
  142.     End
  143.     :LABEL012
  144.     AnsiPos 50, 6
  145.     Print "@X0FNO"
  146.     AnsiPos 56, 6
  147.     Print "@X1FYES@X0F"
  148.     INTEGER001 = 1
  149.     Return
  150.     :LABEL013
  151.     AnsiPos 56, 6
  152.     Print "@X0FYES"
  153.     AnsiPos 50, 6
  154.     Print "@X1FNO@X0F"
  155.     INTEGER001 = 2
  156.     Return
  157.     End
  158.  
  159. ;------------------------------------------------------------------------------
  160.  
  161.     Procedure PROC001(Var String STRING007, Integer INTEGER003, Boolean BOOLEAN003)
  162.  
  163.     String   STRING008
  164.     Integer  INTEGER004
  165.     Integer  INTEGER005
  166.     Integer  INTEGER006
  167.     Integer  INTEGER007
  168.  
  169.     STRING007 = ""
  170.     INTEGER004 = 0
  171.     :LABEL014
  172.     If (BOOLEAN003) Then
  173.         STRING008 = Upper(Inkey())
  174.     Else
  175.         STRING008 = Inkey()
  176.     Endif
  177.     If (BOOLEAN003) Then
  178.         If (Len(STRING008) > 1) Then
  179.             If (INTEGER005 == 0) Then
  180.                 TSTRING006(0) = STRING007
  181.             Endif
  182.             If (STRING008 == "UP") Then
  183.                 If (INTEGER005 > 0) Then
  184.                     TSTRING006(INTEGER005) = STRING007
  185.                     INTEGER005 = INTEGER005 - 1
  186.                     AnsiPos 50, 4
  187.                     Print "@X08························"
  188.                     AnsiPos 50, 4
  189.                     Print "@X0F" + TSTRING006(INTEGER005)
  190.                     INTEGER004 = Len(TSTRING006(INTEGER005))
  191.                     STRING007 = TSTRING006(INTEGER005)
  192.                     INTEGER006 = GetX()
  193.                     INTEGER007 = GetY()
  194.                     AnsiPos 62, 6
  195.                     Print "@X0FRe@X07cord # @X08[@X0F" + String(INTEGER005) + "@X08] "
  196.                     AnsiPos INTEGER006, INTEGER007
  197.                 Endif
  198.             Endif
  199.             If (STRING008 == "DOWN") Then
  200.                 If (INTEGER005 < INTEGER002) Then
  201.                     TSTRING006(INTEGER005) = STRING007
  202.                     INTEGER005 = INTEGER005 + 1
  203.                     AnsiPos 50, 4
  204.                     Print "@X08························"
  205.                     AnsiPos 50, 4
  206.                     Print "@X0F" + TSTRING006(INTEGER005)
  207.                     INTEGER004 = Len(TSTRING006(INTEGER005))
  208.                     STRING007 = TSTRING006(INTEGER005)
  209.                     INTEGER006 = GetX()
  210.                     INTEGER007 = GetY()
  211.                     AnsiPos 62, 6
  212.                     Print "@X0FRe@X07cord # @X08[@X0F" + String(INTEGER005) + "@X08] "
  213.                     AnsiPos INTEGER006, INTEGER007
  214.                 Endif
  215.             Endif
  216.         Endif
  217.     Endif
  218.     TSTRING006(INTEGER005) = STRING007
  219.     If (STRING008 == Chr(13)) Goto LABEL015
  220.     If (STRING008 == Chr(29)) Goto LABEL014
  221.     If (STRING008 == Chr(8)) Then
  222.         If (INTEGER004 == 0) Goto LABEL014
  223.         INTEGER004 = INTEGER004 - 1
  224.         Backup 1
  225.         Print "@X08·"
  226.         Backup 1
  227.         STRING007 = Left(STRING007, INTEGER004)
  228.         Goto LABEL014
  229.     Endif
  230.     If (!(Len(STRING008) == 1)) Goto LABEL014
  231.     If (Asc(STRING008) < 31) Goto LABEL014
  232.     If (INTEGER004 == INTEGER003) Goto LABEL014
  233.     STRING007 = STRING007 + STRING008
  234.     INTEGER004 = INTEGER004 + 1
  235.     Print "@X08", STRING008
  236.     Backup 1
  237.     Delay 1
  238.     Print "@X07", STRING008
  239.     Backup 1
  240.     Delay 1
  241.     Print "@X0F", STRING008
  242.     Goto LABEL014
  243.     :LABEL015
  244.     STRING007 = Trim(TSTRING006(INTEGER005), " ")
  245.  
  246.     EndProc
  247.  
  248.  
  249. ;------------------------------------------------------------------------------
  250. ;
  251. ; Usage report (before postprocessing)
  252. ;
  253. ; ■ Statements used :
  254. ;
  255. ;    3       End
  256. ;    1       Wait
  257. ;    45      Goto 
  258. ;    42      Let 
  259. ;    19      Print 
  260. ;    4       PrintLn 
  261. ;    34      If 
  262. ;    1       DispFile 
  263. ;    1       FOpen 
  264. ;    1       FClose 
  265. ;    1       FGet 
  266. ;    1       StartDisp 
  267. ;    1       GetUser
  268. ;    7       Gosub 
  269. ;    2       Return
  270. ;    2       Delay 
  271. ;    1       KbdStuff 
  272. ;    26      AnsiPos 
  273. ;    4       Backup 
  274. ;    1       EndProc
  275. ;
  276. ;
  277. ; ■ Functions used :
  278. ;
  279. ;    20      +
  280. ;    3       -
  281. ;    23      ==
  282. ;    2       <
  283. ;    3       >
  284. ;    29      !
  285. ;    1       ||
  286. ;    4       Len(
  287. ;    5       Upper()
  288. ;    2       Left()
  289. ;    1       Right()
  290. ;    1       Ferr()
  291. ;    4       Chr()
  292. ;    1       Asc()
  293. ;    2       Trim()
  294. ;    2       U_Name()
  295. ;    1       Strip()
  296. ;    3       Inkey()
  297. ;    2       String()
  298. ;    2       PPEPath()
  299. ;    1       GetToken()
  300. ;    2       Exist()
  301. ;    2       GetX()
  302. ;    2       GetY()
  303. ;    1       TokCount()
  304. ;
  305. ;------------------------------------------------------------------------------
  306. ;
  307. ; Analysis flags : No flag
  308. ;
  309. ;------------------------------------------------------------------------------
  310. ;
  311. ; Postprocessing report
  312. ;
  313. ;    0       For/Next
  314. ;    1       While/EndWhile
  315. ;    22      If/Then or If/Then/Else
  316. ;    0       Select Case
  317. ;
  318. ;------------------------------------------------------------------------------
  319. ;                 AEGiS Corp - Break the routines, code against the machines!
  320. ;------------------------------------------------------------------------------
  321.